当前位置:  开发笔记 > 编程语言 > 正文

Android:`RecognizerIntent.EXTRA_MAX_RESULTS`不限制结果数量

如何解决《Android:`RecognizerIntent.EXTRA_MAX_RESULTS`不限制结果数量》经验,为你挑选了0个好方法。

我正在使用Android,SpeechRecognizer并希望限制Google返回的转录结果数量.

从文档,EXTRA_MAX_RESULTS在RecognizerIntent貌似我想要的东西:

要返回的最大结果数量的可选限制.如果省略,识别器将选择返回多少结果.必须是整数.

但是,将此额外添加到意图中无效.该BundleonResults总是有五个改编,无论我指定的号码.

public class MainActivity extends AppCompatActivity implements RecognitionListener {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final SpeechRecognizer recognizer = SpeechRecognizer.createSpeechRecognizer(getApplicationContext());
    recognizer.setRecognitionListener(this);

    final Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 2); //should limit to 2 results

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        recognizer.startListening(intent);
      }
    });
  }

  @Override public void onResults(Bundle results) {
    ArrayList matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
    if (matches != null && !matches.isEmpty()) {
      Log.d("All matches", "number matches: " + matches.size()); //always 5
    }
  }
...

}

限制Google返回的转录数量的正确方法是什么?

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有